package com.qf.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;


//邮件发送工具类1
@Component
public class EmailUtil {

    //JavaMailSender:spring提供的接口
    @Autowired
    JavaMailSender javaMailSender;

    //从配置文件中获取发送者 定义为from
    @Value("${spring.mail.username}")
    private String from;

    //定义验证码发送的方法send(接收者为mail---前端传过来的邮箱)
    //当发送完验证码之后还得把验证码存储下来以便和用户输入的验证码做对比 所以返回值选用Map集合
    public Map send(String mail){

        //1.创建simpleMail
        SimpleMailMessage simpleMailMessage=new SimpleMailMessage();

        //2.定义邮件的接收者 发送者 主题
        simpleMailMessage.setTo(mail);

        simpleMailMessage.setFrom(from);

        simpleMailMessage.setSubject("携程旅游验证码");

        //设置邮件内容
        StringBuffer stringBuffer=new StringBuffer();//StringBuffer可以存储和操作字符串

        for (int i=0;i<=4;i++){

            //生成一个10以内的随机数
            int il=new Random().nextInt(10);

            stringBuffer.append(il);
        }

        simpleMailMessage.setText(stringBuffer.toString());

        javaMailSender.send(simpleMailMessage);

        //HashMap是Map接口的一个实现类
        Map map=new HashMap();

        map.put("code",stringBuffer.toString());

        //最终返回的是一个key为code，value为四位验证吗的map
        return map;
    }

}
